void main() {
  Person person = Person();
  person.name = '张三';
  person.age = 18;
  person.sayHello();

  print('============================');

  Teacher teacher = Teacher();
  teacher.name = '张三';
  teacher.age = 18;
  teacher.subject = '鸿蒙';
  teacher.sayHello();
  // teacher.saySubject();

  print('============================');

  Student student = Student();
  student.name = '李四';
  student.age = 18;
  student.grade = '大二';
  student.sayHello();
  // student.sayGrade();
}

// 定一个父类
class Person {
  // 定义属性
  String name = '人类';
  int age = 0;

  // 定义方法
  void sayHello() {
    print('你好，我是$name,我今年$age岁');
  }
}

// 定义一个老师类
class Teacher extends Person {
  // 定义学科属性
  String subject = '鸿蒙';

  // 定义方法
  void saySubject() {
    print('我是老师，我教的学科是$subject');
  }

  // 重写父类的方法
  @override
  void sayHello() {
    // 调用父类的方法
    super.sayHello();
    print('你好，我是老师，我叫$name,我今年$age岁');
  }
}

// 定义一个学生类
class Student extends Person {
  // 添加属性
  String grade = '大一';

  // 添加方法
  void sayGrade() {
    print('我是学生，我今年$grade');
  }
}
